package com.catal.framework.sequence;

import java.util.List;

/**
 * 序列号服务接口,根据定义的序列号标识生成序列号<p>
 * <ul>
 * <li>isExist 判断是否存在序列号</li>
 * <li>create 根据No对象显式创建一个序列号</li>
 * <li>generate 生成一个序列号</li>
 * <li> batchGenerate 批量生成序列号</li>
 * </ul>
 * 
 * @see com.catal.framework.sequence.No
 * @see com.catal.framework.sequence.Instance
 * @see com.catal.framework.sequence.DefaultSequence
 */
public interface Sequence {

	/**
	 * 判断是否存在id为seqDefid的序列号
	 * 
	 * @param seqDefid
	 * @return
	 */
	boolean isExist(String seqDefid);

	/**
	 * 根据No对象显式创建一个序列号
	 * 
	 * @param no
	 */
	void create(No no);

	/**
	 * 获得序列号的值
	 * 
	 * @param seqDefid
	 * @return
	 */
	String generate(String seqDefid);

	/**
	 * 批量获得序列号的值
	 * 
	 * @param seqDefid
	 * @param count
	 * @return
	 */
	List /* <String> */batchGenerate(String seqDefid, int count);
}
